home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.ivb.jface.plus;
-
- import com.ibm.ivf.ui.browser.interfaces.IElement;
- import com.ibm.ivf.ui.browser.interfaces.IIndexedProperty;
- import com.ibm.ivf.ui.browser.interfaces.IProperty;
- import com.ibm.ivf.ui.browser.interfaces.SetPropertyVetoException;
- import com.ibm.ivf.ui.browser.model.IBasicProperties;
- import com.ibm.ivf.ui.browser.model.SimpleProperty;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.event.TreeModelEvent;
- import javax.swing.event.TreeModelListener;
- import javax.swing.tree.TreeModel;
- import javax.swing.tree.TreePath;
-
- public class TreeModelAdapter implements TreeModel, IBasicProperties {
- private static final String fgIBMCopyright = "(c) Copyright IBM Corporation 1998";
- protected IElement root;
- protected IIndexedProperty rootProperty;
- protected String childrenPropertyName;
- protected Vector listeners;
-
- public TreeModelAdapter() {
- this((IElement)null, (IProperty)null, (String)null);
- }
-
- public TreeModelAdapter(IElement var1, IProperty var2, String var3) {
- this.root = var1;
- this.rootProperty = (IIndexedProperty)var2;
- this.childrenPropertyName = var3;
- this.listeners = new Vector();
- }
-
- public void addTreeModelListener(TreeModelListener var1) {
- this.listeners.addElement(var1);
- }
-
- public Object getChild(Object var1, int var2) {
- if (var1 != null) {
- IIndexedProperty var3 = this.getProperty(var1);
- if (var3 != null) {
- return var3.elementAt(var2);
- }
- }
-
- return null;
- }
-
- public int getChildCount(Object var1) {
- if (var1 != null) {
- IIndexedProperty var2 = this.getProperty(var1);
- if (var2 != null) {
- return var2.getSize();
- }
- }
-
- return 0;
- }
-
- public int getIndexOfChild(Object var1, Object var2) {
- IIndexedProperty var3 = this.getProperty(var1);
- return var3 != null ? var3.indexOfElement((IElement)var2) : -1;
- }
-
- protected IIndexedProperty getProperty(Object var1) {
- if (var1 instanceof IElement && this.childrenPropertyName != null) {
- IElement var2 = (IElement)var1;
- return var2 == this.root ? this.rootProperty : (IIndexedProperty)var2.getProperty(this.childrenPropertyName);
- } else {
- return null;
- }
- }
-
- public Object getRoot() {
- return this.root;
- }
-
- public boolean isLeaf(Object var1) {
- IIndexedProperty var2 = this.getProperty(var1);
- if (var2 != null) {
- return var2.getSize() == 0;
- } else {
- return true;
- }
- }
-
- public void removeTreeModelListener(TreeModelListener var1) {
- this.listeners.removeElement(var1);
- }
-
- public void treeNodeChanged(TreePath var1, Object var2) {
- byte var3 = 0;
- Object var4 = null;
- int var5;
- if (var2 != null) {
- var4 = var1.getLastPathComponent();
- var5 = this.getIndexOfChild(var4, var2);
- if (var5 < 0) {
- var5 = this.getChildCount(var4);
- var3 = 2;
- } else {
- var3 = 1;
- }
- } else {
- var4 = var1.getLastPathComponent();
- var5 = this.getChildCount(var4);
- var3 = 2;
- }
-
- Object[] var6 = new Object[1];
- int[] var7 = new int[1];
- var6[0] = var2;
- var7[0] = var5;
- Enumeration var8 = this.listeners.elements();
-
- while(var8.hasMoreElements()) {
- TreeModelListener var9 = (TreeModelListener)var8.nextElement();
- switch (var3) {
- case 0:
- var9.treeNodesChanged(new TreeModelEvent(this, var1, var7, var6));
- break;
- case 1:
- var9.treeNodesInserted(new TreeModelEvent(this, var1, var7, var6));
- break;
- case 2:
- var9.treeStructureChanged(new TreeModelEvent(this, var1));
- }
- }
-
- }
-
- public void valueForPathChanged(TreePath var1, Object var2) {
- Object var3 = var1.getLastPathComponent();
- if (var2 != null && var3 instanceof IElement) {
- IElement var4 = (IElement)var3;
- if (var2 instanceof String) {
- try {
- var4.setProperty("name", new SimpleProperty((String)var2));
- return;
- } catch (SetPropertyVetoException var5) {
- return;
- }
- }
- }
-
- }
- }
-